package com.peas.platform.module.icims.base.auth.dto;

import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.common.core.dto.BaseDto;
import com.peas.platform.framework.mybatisplus.annotation.Condition;
import com.peas.platform.framework.mybatisplus.annotation.ConditionOperator;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

// 用户
@Data
@EqualsAndHashCode(callSuper = false)
public class UserDto extends BaseDto {

    // 用户名
    @Comment(value = "用户名")
    @Condition(operator = ConditionOperator.IN)
    private String username;

    // 密码
    @Comment(value = "密码")
    @Condition(operator = ConditionOperator.IN)
    private String password;

    // 状态
    // 枚举取值:UserState
    @Comment(value = "状态", enumType = "UserState")
    @Condition(operator = ConditionOperator.IN)
    private String state;

    // 是否管理员
    // 枚举取值:CommonYesNo
    @Comment(value = "是否管理员", enumType = "CommonYesNo")
    private String isManager;

    // 是否强制修改密码
    // 枚举取值:CommonYesNo
    @Comment(value = "是否强制修改密码", enumType = "CommonYesNo")
    @Condition(operator = ConditionOperator.IN)
    private String needModify;

    // 最后一次登录时间
    @Comment(value = "最后一次登录时间")
    private Date lastLoginTime;

    // 最后一次登录IP
    @Comment(value = "最后一次登录IP")
    @Condition(operator = ConditionOperator.IN)
    private String lastLoginIp;

    // 姓名
    @Comment(value = "姓名")
    private String name;

    // 性别
    // 枚举取值:UserGender
    @Comment(value = "性别", enumType = "UserGender")
    @Condition(operator = ConditionOperator.IN)
    private String gender;

    // 手机号码
    @Comment(value = "手机号码")
    private String mobile;

    // 身份证号
    @Comment(value = "身份证号")
    private String idcard;

    // 邮箱
    @Comment(value = "邮箱")
    private String email;

    // 头像
    @Comment(value = "头像")
    private Long avatar;

    // 组织架构ID
    // （组织架构表）外键
    @Comment(value = "组织架构ID")
    private Long organizationId;

    // 职级
    // 字典取值:UserRank
    @Comment(value = "职级", dictType = "UserRank")
    private String rank;

    // 签名图
    @Comment(value = "签名图")
    private Long sign;

    //Criteria
    private Date createTimeStart;
    private Date createTimeEnd;
    private Date updateTimeStart;
    private Date updateTimeEnd;
    private Date lastLoginTimeStart;
    private Date lastLoginTimeEnd;
}
